package com.powernode;

import com.powernode.tool.MysqlService;
import org.springframework.ai.tool.ToolCallbackProvider;
import org.springframework.ai.tool.method.MethodToolCallbackProvider;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Bean;

@SpringBootApplication
public class McpMysqlServeApplication {
    public static void main(String[] args) {
        SpringApplication.run(McpMysqlServeApplication.class, args);
    }

    /**
     * 注册MySQL服务工具到应用上下文
     * 该方法会将MysqlService中的工具方法注册为可被调用的回调服务
     * 使得大模型能够通过工具调用机制使用数据库相关功能
     *
     * @param mysqlService 已注入的MysqlService实例，包含数据库操作工具方法
     * @return ToolCallbackProvider 工具回调提供者实例，用于管理和暴露工具方法
     */
    @Bean
    public ToolCallbackProvider mysqlToolCallbackProvider(MysqlService mysqlService) {
        // 使用构建者模式创建MethodToolCallbackProvider
        // 将mysqlService实例注册为工具对象，使其方法可被外部调用
        return MethodToolCallbackProvider.builder().toolObjects(mysqlService).build();
    }
}
